/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.ufes.gpf.sgm.presenter;

import edu.ufes.gpf.sgm.dao.PessoasDAOMySQL;
import edu.ufes.gpf.sgm.model.Pessoa;
import edu.ufes.gpf.sgm.state.incluirPessoa.AbstractStateIncluirPessoa;
import edu.ufes.gpf.sgm.state.incluirPessoa.EstadoInclusaoPessoa;
import edu.ufes.gpf.sgm.state.incluirPessoa.EstadoVisualizacaoPessoa;
import edu.ufes.gpf.sgm.view.IncluirPessoaView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Danilo
 */
public class IncluirPessoaPresenter
{
    private IncluirPessoaView view;
    private PessoasDAOMySQL pessoas;
    private AbstractStateIncluirPessoa estado;
    private Pessoa pessoa;

    public IncluirPessoaPresenter(Pessoa pPessoa)
    {
        pessoa = pPessoa;
        view = new IncluirPessoaView();
        carregarUF();
        try
        {
            pessoas = PessoasDAOMySQL.getInstancia();
            
        } catch (ClassNotFoundException ex)
        {
            Logger.getLogger(IncluirPessoaPresenter.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex)
        {
            Logger.getLogger(IncluirPessoaPresenter.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        if(pessoa == null)
        {
            setEstado(new EstadoInclusaoPessoa(this));
        }
        else
        {
            setEstado(new EstadoVisualizacaoPessoa(this));
        }
        
        view.getBtnSair().addActionListener(new ActionListener()
        {

            @Override
            public void actionPerformed(ActionEvent e)
            {
                sair();
            }
        });
        view.getBtnSalvar().addActionListener(new ActionListener()
        {

            @Override
            public void actionPerformed(ActionEvent e)
            {
                salvar();
            }
        });
        
        view.setVisible(true);
    }
    
    
    private void salvar()
    {
        estado.salvar();
    }
    
    private void sair()
    {
        estado.sair();
    }

    public IncluirPessoaView getView()
    {
        return view;
    }

    public void setView(IncluirPessoaView view)
    {
        this.view = view;
    }

    public PessoasDAOMySQL getPessoas()
    {
        return pessoas;
    }

    public void setPessoas(PessoasDAOMySQL pessoas)
    {
        this.pessoas = pessoas;
    }

    public AbstractStateIncluirPessoa getEstado()
    {
        return estado;
    }

    public void setEstado(AbstractStateIncluirPessoa estado)
    {
        this.estado = estado;
    }

    public Pessoa getPessoa()
    {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa)
    {
        this.pessoa = pessoa;
    }
    
    public void carregarUF(){
        view.getCbmUf().addItem("<Selecione>");
        view.getCbmUf().addItem("ES");
        view.getCbmUf().addItem("MG");
        view.getCbmUf().addItem("RJ");
        view.getCbmUf().addItem("SP");
    }
    
    
}
